package com.saodisheng.service;

import com.jfinal.plugin.activerecord.Page;
import com.saodisheng.model.NewsFeed;
import com.saodisheng.model.Posts;
import com.saodisheng.model.PostsComment;
import java.util.List;

/**
 * 
* <p>Title: NewsFeedService</p>
* <p>Description: 动态消息业务，包括所有动态，热门，@提到我
* 	其中，动态消息为自己的动态及关注的人的动态，热门为学习点击量最多的课程，@提到我分为@我的消息以及评论/回复我
* </p>
* <p>Company: greennet</p>
 *
 * @author 扫地生_saodisheng
 * @date 2022/1/28
 */
public interface NewsFeedService {
	/**
     * 个人空间模块的动态消息，显示自己以及所有关注用户的动态消息
     */
    Page<NewsFeed> paginate(int accountId, int pageNum);
    
    /**
     * 所有动态消息，不添加任何条件,管理员使用该方法
     */
    Page<NewsFeed> paginateForAllNewsFeed(int pageNum);
    
	/**
	 * 创建posts动态
	 */
	void createPostsNewsFeed(int accountId, Posts posts, List<Integer> referAccounts);

	/**
	 * 创建posts动态
	 */
	void createCommentsNewsFeed(int accountId, PostsComment comments, List<Integer> referAccounts);
	
	void loadRefData(Page<NewsFeed> newsFeedPage);
	
	void clearCache();
}
